package com.youxue.teachin.webplugin;

import java.io.Serializable;

/**
 * 在此写用途
 *
 * @author: zhiwei
 * @date: 2017-10-10 21:50
 * @version: 9.1.0
 */
public class WebViewParam implements Serializable {
    // 参数:初始化Url
    public String mUrl;
    // 参数:标题(WebView内提供不了,则采用该标题)
    public String mTitle;
    // 参数:是否锁定标题(当mTitle不为空,则持久化显示,不考虑WebView内获取)
    public boolean mTitleLock = false;
    // 参数:左上角Action
    public ActionLeft mActionLeft;
    // 参数:右上角Action
    public ActionRight mActionRight;
    // 参数:是否需要返回Action
    public boolean mNeedActionBack = true;

    public boolean mNeedMenu = false;
    // 参数:是否隐藏ActionBar
    public boolean mHideActionBar = false;
    // 参数:是否清除缓存数据
    public boolean mClearCache = false;
    // 参数:是否清除历史记录
    public boolean mClearHistory = false;
    // 参数:是否需要刷新
    public boolean mNeedRefresh = true;
    // 参数:是否需要关闭入口
    public boolean mNeedCloseEntrance = false;
    // 参数:加载模式
    public LoadingMode mLoadingMode = LoadingMode.NONE;
    /**
     * true 调用h5接口通知下拉刷星，false 调用webView的loadUrl重新加载
     */
    public boolean mNotificationPtrRefresh = true;


    public WebViewParam() {

    }

    /**
     * 左上角Action
     */
    public static class ActionLeft implements Serializable {
        // 左上角Action name
        public int mActionNameResId;
        // 左上角Action callback
        public ActionLeftCallBack mActionCallBack;
    }

    /**
     * 右上角Action
     */
    public static class ActionRight implements Serializable {
        // 右上角Action name
        public int mActionNameResId;
        // 右上角Action callback
        public ActionRightCallBack mActionCallBack;
    }

    /**
     * 加载模式
     */
    public enum LoadingMode {
        NONE, CIRCLE, HORIZONTAL;
    }

    /**
     * 左上角ActionCallback
     */
    public interface ActionLeftCallBack extends Serializable {
        void onActionClick();
    }

    /**
     * 右上角ActionCallback
     */
    public interface ActionRightCallBack extends Serializable {
        void onActionClick();
    }

    public WebViewParam(String uri) {
        this.mUrl = uri;
    }
}
